Содержание статьи
Не так давно мы уже публиковали мою большую подборку тулз для автоматизации работы. Вдохновившись позитивными отзывами, я снова перерыл все загашники и извлек еще пару десятков годных инструментов, которые делают жизнь приятнее в мелочах. Некоторые из них не раз выручали меня, когда нужно было сделать что‑то быстро и не изобретая велосипед.
Сеть
Netfilter
Каждый админ в жизни должен построить сеть, обругать бухгалтера и настроить файрвол. С первой задачей ты справишься сам, вторая — полностью опциональна, а мы поговорим о файрволе.
Филипп Юмо (Philippe Humeau) из CrowdSec написал пару отличных скриптов для автоматического поднятия защиты и настройки маршрутизации на системах с поддержкой iptables/nftables. В комплекте идут настройки для knockd, который реализует port knocking красиво.
Есть поддержка нескольких аплинков и VPN. А еще автор специально старается держать скрипты для iptables и nftables максимально похожими, чтобы облегчить миграцию тем, кто еще этого не сделал.

adbwebkit
Adbwebkit — это хорошая веб‑морда для взаимодействия с устройством на Android по ADB. Представляет собой пачку скриптов на PHP, которые парсят вывод штатного клиента ADB в системе и выводят результат в веб‑интерфейс. Мне пригодилось для работы с телефоном, у которого очень плохо работал сенсор, а доступ к системе был нужен.
Установка делается в четыре команды, включая установку зависимостей:
sudo apt install -y git php
git clone https://github.com/jxroot/adbwebkit.git
cd adbwebkit
php -S 127.0.0.1:8000
После этого веб‑интерфейс станет доступен по адресу localhost:8000.

Дашборды
Cockpit
Cockpit — это не совсем дашборд. Это большая веб‑консоль для управления сервером.
Установка максимально проста:
sudo apt update
sudo apt install cockpit
sudo systemctl enable cockpit
sudo systemctl start cockpit
Затем нужно открыть порт 9090 на файрволе:
sudo ufw allow 9090/tcp
Дальше можно настроить доступ через реверс‑прокси nginx по имени хоста с нормальными SSL-сертификатами и на привычных портах.
После всех манипуляций заходим на < и видим окно логина. В него вбиваем имя пользователя и пароль действительной учетной записи на сервере и видим дашборд.

Cockpit умеет рисовать графики большинства интересных метрик — в частности, загрузки диска.

На вкладке Host доступны действия с сервером: установка обновлений, рулежка сервисами, управление питанием и так далее.

Начинающему админу это может здорово облегчить жизнь.
btop++
Помнишь bashtop из прошлой серии? Btop++ — это его реализация на C++ с повышенной производительностью. Уменьшенный интервал обновления графиков не приводит к значительному повышению нагрузки на процессор. При этом дашборд выглядит столь же красочно и эффектно для неискушенного посетителя твоей серверной!


Xakep #270. Инструменты криминалиста
Bottom
Bottom внешне похож на bashtop, но написан на Rust, что тоже означает высокую производительность и низкую нагрузку на процессор.
Bottom поддерживает Linux (на архитектурах x86, x64 и aarch64), Windows (x86 и x64) и даже macOS!
Устанавливается на Debian-based-дистрибутивы всего в две команды:
curl -LO https://github.com/ClementTsang/bottom/releases/download/0.6.4/bottom_0.6.4_amd64.deb
sudo dpkg -i bottom_0.6.4_amd64.deb
На Arch все еще проще:
sudo pacman -Syu bottom
Для Windows есть установщик MSI, который можно просто скачать и запустить.
Для запуска утилиты нужно писать не bottom, как ты мог подумать, а btm. После старта увидишь что‑то похожее на скриншот.

Viddy
Viddy — это современный watch на Go с блек‑джеком и машиной времени в комплекте.

Интересно, что он позволяет не просто наблюдать за происходящим, но и перематывать действия во времени.
Установка в Linux-системах сводится к одной команде:
wget -O viddy.tar.gz https://github.com/sachaos/viddy/releases/download/v0.3.1/viddy_0.3.1_Linux_x86_64.tar.gz && tar xvf viddy.tar.gz && mv viddy /usr/local/bin
Из команд для управления Viddy во время работы достаточно знать две: пробел включает машину времени, а s приостанавливает выполнение вызываемой команды.
Automation & Scripting
htmlq
Конечно, ты знаешь про jq — утилиту для работы с JSON из терминала. А как насчет HTML? Когда пишешь скрипты для парсинга всяких сайтов, очень полезно иметь возможность взаимодействовать с HTML нормальным способом, а не регулярками. htmlq — это как раз такой инструмент.
Написан htmlq на Rust и ставится через Cargo:
cargo install htmlq
htmlq работает через селекторы CSS или атрибуты. Давай для примера вытащим все ссылки с главной «Хакера».
hackcat@srv8 ➜ curl --silent https://xakep.ru/ | htmlq --attribute href a
https://xakep.ru/wp-login.php?redirect_to=https%3A%2F%2Fxakep.ru%2F
https://xakep.ru/
https://xakep.ru/category/hack/
https://xakep.ru/category/privacy/
https://xakep.ru/category/tricks/
https://xakep.ru/category/coding/
https://xakep.ru/category/admin/
https://xakep.ru/category/geek/
https://my.xakep.ru/courses/
https://xakep.shop/
/wp-admin/users.php?page=paywall_subscribes&from=paywall_subscribe&subscribe=12_months
https://xakep.ru/tag/windows/
https://xakep.ru/tag/linux/
https://xakep.ru/tag/android/
https://xakep.ru/tag/zhelezo/
https://xakep.ru/tag/messengers/
https://xakep.ru/tag/leaks/
https://xakep.ru/tag/covid-19/
https://xakep.ru/issues/xa/
...
sysz
Sysz — это псевдографический интерфейс для работы с юнитами systemd. Он позволяет удобно просматривать и управлять сервисами. Вот, например, как посмотреть состояние демона Cockpit, который мы рассмотрели выше.

xargs
Если ты вдруг не слышал о xargs, то ты многое пропустил. Это утилита, которая вызывает заданную команду с аргументами, переданными в потоке стандартного ввода.
Вот простой пример: удалим все файлы лицензии всех программ, установленных в домашнюю папку. Зачем? Не знаю, но с xargs это делается вот таким интуитивным конвейером:
find ~/ -name LICENSE | xargs -d $'\n' -- rmПриятная и малоизвестная фишка: xargs умеет сам распараллеливать задачи. Хочешь запустить кучу задач параллельно? xargs сделает это в 16 потоков. Надо больше? Просто увеличь число. Никаким for такого результата не получишь.
Конечно, можно использовать $(..., но это не так удобно, как запуск всего одной команды. Скажем, в примере выше можно использовать параметр -exec у find, но это могло бы запустить сотни процессов удаления вместо всего одного. Оптимизация налицо!
miller
Miller — это утилита, которая умеет обрабатывать структурированные данные в форматах CSV, TSV и JSON. Указываем исходный формат, указываем нужный нам формат — и получаем результат в желаемом виде.
Если у тебя Ubuntu, miller устанавливается одной командой.
sudo apt install miller
Инструкции по установке для других ОС и дистрибутивов ты найдешь в репозитории проекта.
Для примера я взял файл CSV с какими‑то случайными данными и попросил miller вывести его красиво с сортировкой по полю Location.

Если ты работаешь с таблицами из терминала, то это полезнейшая штука!
Всякое
Windows Registry Recovery
Как ты знаешь, куски реестра Windows хранятся в папках пользователей. Не менее известно, что эти файлы могут содержать что‑то ценное, что бывает нужно оттуда извлечь. Для этого обычно копируют файл NTUSER.DAT и монтируют его на реестр, но лично мне попадались экземпляры, которые штатными средствами упорно не читались, а прочитать было позарез нужно.
Выход нашелся: программа Windows Registry Recovery правильно разобрала такие нечитабельные файлы и помогла выполнить задание. Для личного использования (а нам ведь больше и не надо, правда?) программа бесплатна.

PAM duress
Представь, что у тебя на пороге вдруг появились какие‑нибудь нежданные гости, которых может заинтересовать информация в твоем компьютере. Но ты уже подготовлен! Даже если тебя заставят залогиниться в систему или выдать пароль, ты сможешь назвать специальный пароль, что активирует скрипт, уничтожающий все интересное.
Сделать это поможет средство pam-duress. Реализовано оно как PAM-библиотека (Pluggable Authentication Module), которая подключается к процессу обработки запроса на авторизацию и обрабатывает введенный пароль по своей логике, если обычный вход не удался.
Установка чуть сложнее обычного, но оно того стоит.
sudo apt install build-essential libpam0g-dev libssl-dev
git clone https://github.com/nuvious/pam-duress.git
make
sudo make installmake clean
mkdir -p ~/.duress
sudo mkdir -p /etc/duress.d
После установки модуля его нужно включить, чтобы система использовала его для аутентификации пользователей. Для этого нужно отредактировать / и заменить эти две строки на следующие:
auth [success=1 default=ignore] pam_unix.so
auth requisite pam_deny.so
auth [success=2 default=ignore] pam_unix.so
auth [success=1 default=ignore] pam_duress.so
auth requisite pam_deny.so
Теперь можно настраивать и тестировать.
Скрипты в ~/. должны иметь разрешения 500, 540 или 550, в противном случае они не будут выполнены.
Подложный пароль задается при выполнении duress_sign и должен не совпадать с обычным.

На скрине выше ты видишь тестирование. В первом случае я ввел настоящий пароль и ничего не произошло. Во втором ввел подложный — и выполнился скрипт, вывод которого попал в консоль.
Важное уточнение: при сборке по этой инструкции ты не получишь никакого вывода в консоли. Это не ошибка: скрипт все равно выполняется, но его вывод перенаправлен в /. Если ни один скрипт не может быть выполнен при вводе липового пароля — pam_test выведет Not . Для просмотра вывода нужна отладочная сборка. Как ее собрать — читай в репозитории автора.
Eternal Terminal
Задача Eternal Terminal — сделать так, чтобы соединение с удаленным сервером по SSH не причиняло боль при нестабильном коннекте или смене IP-адресов клиента (например, в дороге). Возможно, ты скажешь, что это похоже на Mosh. Автор этого и не скрывает, просто его утилита работает гораздо лучше.
Eternal Terminal не перезапускает сессию при падении (для этого есть autossh), а обеспечивает бесшовное переключение между аплинками без прерываний сессии. Поскольку я часто работаю не из дома, держать все SSH-коннекты живыми без повреждений становится непросто, и Eternal Terminal сослужил мне отличную службу.
Установка ET в Ubuntu проста:
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:jgmath2000/et
sudo apt-get update
sudo apt-get install et
Теперь проверь, жив ли демон на сервере:
systemctl status et
Если написано running — значит, все сделано правильно. Остается только открыть порт 2022 и убедиться, что ты можешь подключится без пароля. Все настройки будут автоматически подтянуты из файла ssh_config, если он есть, так что ты даже не потеряешь фишки, специфичные для SSH. А дальше с клиентской машины просто вбей et и забудь про обрывы соединения!
screen
Мы уже недавно упоминали screen в статье про инструментарий девопса, но я хотел бы снова напомнить об этом чудо‑инструменте, который выручал меня до того, как я нашел Eternal Terminal. Если кратко, screen создает виртуальную консоль, которая не умирает вместе с SSH-соединением и позволяет переподключиться (screen ) к ней после реконнекта.
Ventoy
Один из инструментов, который сэкономил мне огромное количество времени, — это Ventoy. Он призван обеспечить удобное создание мультизагрузочных носителей без садомазохизма и нетрадиционных отношений с доисторическими загрузчиками. Все что нужно — это установить Ventoy с помощью удобного инсталлятора из любой ОС и закинуть ISO-файлы требуемых операционок на созданный раздел.
Инсталлятор ты найдешь на странице загрузки на сайте программы. В Windows (откуда я и создавал свой прокачанный диск) нужно распаковать архив и запустить Ventoy2Disk., а там выбрать нужный носитель из списка и нажать Install.

Дополнительные настройки вроде стиля разделов и поддержки Secure Boot находятся в меню Option.

Когда с установкой и копированием ISO будет покончено, можно перезагружаться. Если все заработало, то ты увидишь меню как на скрине ниже.

Для загрузки просто выбери ISO из списка и нажми Enter. Всё! И Windows, и популярные дистрибутивы Linux без проблем загружаются через Ventoy. Никакой возни с перепаковкой образов и настройкой grub4dos.
При изменении списка образов на носителе никаких дополнительных действий не нужно — ни замены конфигов, ни переустановки. Все подтянется само и будет работать.
www
Программа имеет открытый исходный код — он доступен на GitHub.
Выводы
Не исключаю, что о многих инструментах ты уже знаешь, а еще наверняка тебе известны и другие полезные утилиты, о которых мы не писали. В таком случае дай знать в комментариях или пиши в редакцию, и мы постараемся исправить это упущение!









